package com.tbit.uqbike.webmanager.dao.log;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.tbit.config.datasource.DataSource;
import com.tbit.uqbike.object.pojo.StatPark;
import com.tbit.uqbike.object.pojo.UserMealLog;
import com.tbit.uqbike.object.pojo.dto.CommonDTO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 用户购买套餐日志Mapper接口
 *
 * @author jing
 * @date 2021-05-25
 */
@DS(DataSource.LOG)
public interface UserMealLogDao {
    /**
     * 查询用户购买套餐日志列表
     *
     * @param userMealLog 用户购买套餐日志
     * @return 用户购买套餐日志集合
     */
    public List<UserMealLog> selectUserMealLogList(UserMealLog userMealLog);

    /**
     * 获取套餐总额
     *
     * @param userMealLog
     * @return 结果
     */
    public int selectCount(UserMealLog userMealLog);


    /**
     * 获取套餐总额
     *
     * @param userMealLog
     * @return 结果
     */
    public List<StatPark> selectByTime(UserMealLog userMealLog);

    /**
     * 获取区域内购买优惠券套餐记录最早一天的数据量
     *
     * @param accountId 帐户id
     * @return {@link Date}
     */
    Date getCouponEarliestData(Integer accountId);

    /**
     * 根据指定时间查询优惠券日预统计
     *
     * @param map 地图
     * @return {@link List}<{@link Map}<{@link String}, {@link Object}>>
     */
    CommonDTO getDateByTime(Map<String, Object> map);


    /**
     * 导出用户购买优惠券日志
     *
     * @param params 参数个数
     * @return {@link List}<{@link UserMealLog}>
     */
    List<UserMealLog> excel(Map<String, Object> params);

    /**
     * 获得优惠券收入
     *
     * @param params 参数个数
     * @return {@link CommonDTO}
     */
    CommonDTO getCouponIncome(Map<String, Object> params);
}
